package com.fmy.jurisdiction.modular.service;

import com.fmy.jurisdiction.core.commons.status.PermissionType;
import com.fmy.jurisdiction.modular.model.AdminPermission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fmy.jurisdiction.modular.model.vo.AdminPermissionChildren;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 权限表  服务类
 * </p>
 *
 * @author Mr.fmy
 * @since 2019-09-16
 */
public interface IAdminPermissionService extends IService<AdminPermission> {

    /**
     * 获取用户所对应的所有用户权限 code
     */
    Set<String> getPermCode(Integer uid);

    /**
     * 根据用户获取其对应所有权限
     */
    List<AdminPermissionChildren> getChilds(Integer uid, PermissionType type);

    boolean add(AdminPermission permission);

    AdminPermission findByCode(String code);

    /**
     * 根据code查询其对应ID
     */
    Integer findByCodeToId(String code);

    /**
     * 根据ID获取其Pcode
     */
    String findByIdToPcode(Integer id);

    /**
     * 修改权限
     */
    boolean modifyPerm(Integer id,String name,String url,String icon,PermissionType type,Integer optionUser);

    /**
     * 删除权限
     */
    boolean delPerm(Integer id);
}
